Git - Local

#Git #Github

learningitbrasnching 튜토리얼을 해보면서 그동안 한번씩 겪었던 문제들을 해결하는 방법과 기타 세세한 사용방법까지 알게되어 정리하는 글입니다. 한번 꼭 해보세요. git에 관련된 최고의 튜토리얼이였습니다.

이전 포스트:
Git 개념


0. HEAD

HEAD는 현재 내가 작업하고 있는 위치를 가리킨다.

여기서 '커밋'이 아닌 '위치'라고 표현한 이유는 HEAD가 참조하는 것이 커밋일수도 있지만, 브랜치일 수도 있기 때문이다. 만약 HEAD가 커밋을 참조하게되면 'HEAD -> 커밋'이지만 브랜치를 참조하게되면 'HEAD -> 브랜치 -> 브랜치의 최신 커밋'으로 참조에 참조를 하게 된다. (이 때문에 checkout 명령어에서 절대참조와 상대참조 개념이 생겨날 수 있다.)

Local에서 HEAD의 Default 위치는 현재 작업 브랜치이다.



깃의 Local에서 사용되는 명령어를 보도록 하자.

1. commit

1-1. 커밋 내역 수정


2. branch

2-1. 브랜치 이동


3. checkout

이 명령어는 겉보기에 여러 의미를 가진 명령어로 보인다. 하지만 단 하나의 의미를 가지는데, 현재 HEAD가 가리키는 지점을 이동시키는 명령어라고 생각하면 된다.


3-1. 절대 참조

3-2. 상대 참조


4. merge


5. rebase

+ 여기서 주의할 점은 커밋을 이사시킬 때 브랜치 라벨은 이동하는 것이지만 커밋들은 복사되는 것이고, 원본 커밋은 브랜치가 없는 커밋으로 남아있게된다.


6. reset / revert

6-1. reset

리셋은 리셋되는 커밋들을 없었던 커밋처럼 삭제해버린다.

6-2. revert


7. cherry-pick


8. tag


9. describe

tag는 가장 가까운 부모 태그를 나타냅니다. numCommits은 그 태그가 몇 커밋 멀리있는지를 나타냅니다. <hash>는 묘사하고있는 커밋의 해시를 나타냅니다.